package com.oa.pm.service;

import com.joneying.common.web.response.Resp;
import com.oa.core.PageResult;
import com.oa.core.exception.BusinessException;
import com.oa.core.exception.DataIsEmptyException;
import com.oa.pm.dto.EntryInformationAddDTO;
import com.oa.pm.dto.EntryInformationAuditDTO;
import com.oa.pm.dto.EntryInformationListDTO;
import com.oa.pm.entity.EntryInformation;
import com.baomidou.mybatisplus.service.IService;
import com.oa.pm.vo.EntryInformationListVO;
import com.oa.pm.vo.EntryInformationVO;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 入职信息表(个人资料表) 服务类
 * </p>
 *
 * @author syb123
 * @since 2019-01-22
 */
public interface IEntryInformationService extends IService<EntryInformation> {
    /**
     * 根据id关联查询
     *
     * @param id
     * @return
     */
    EntryInformationVO findEntryInformation(String id, String userId);


    /**
     * 新增入职
     *
     * @param entryInformationAddDTO
     * @return
     */
    Resp addEntryInformation(EntryInformationAddDTO entryInformationAddDTO) throws BusinessException, DataIsEmptyException;

    /**
     * 查询入职列表
     *
     * @param entryInformationListDTO EntryInformationListDTO
     * @return
     */
    PageResult<EntryInformationListVO> findEntryInformationList(EntryInformationListDTO entryInformationListDTO);

    Resp audit(EntryInformationAuditDTO entryInformationAuditDTO) throws DataIsEmptyException, BusinessException;

    void export(EntryInformationListDTO entryInformationListDTO, HttpServletResponse response);
}
